home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revolution - Das Atari CD Magazin 1997
/
Revolution - Das Atari CD Magazin 1.iso
/
software
/
anwendng
/
qed_397
/
sourcen
/
wp_print.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-06
|
5KB
|
144 lines
/*
* Schnittstelle für ASCII-Druckfunktionen, die einen Wordplus-Treiber
* benutzen.
* Basiert auf Modula2-Quellen von Uwe Mindrup, 1993
* PureC-Portierung von Christian Felsch, 1995
*
* Druckertreiber;
* Der Druckertreiber dient dazu, Texte mit Hilfe der reichlich vorhandenen
* Druckeranpassungen für Wordplus ausdrucken zu können. Zur Initialisierung
* muß eine CFG-Datei geladen werden.
* Aufbau einer CFG-Datei:
* - Header 'GST-CFG:'; dient als Kennung zur Unterscheidung von anderen
* Formaten.
* - Es folgen sechs Bytes mit folgender Bedeutung:
* (1) 1 für Typenrad mit horizontalem Spacing, sonst 0
* (2) Zeichenbreite in Druckereinheiten (Typenrad)
* (3) Zeilenabstand in Druckereinheiten
* (4) Wagenmitte (Typenrad); Pixel/Inch (Matrixdrucker)
* (5) Zeichenabstand bei Fettdruck (Typenrad)
* (6) 1 Pause mit Abfrage zwischen Seiten, sonst 0
* Diese Werte werden vom vorliegenden Modul ignoriert.
*
* - Jetzt folgen die Druckercharakteristiken.
* Diese Tabelle enthält die Steuersequenzen, die zur Steuerung des
* Druckers benutzt werden (hoch, tief, fett, unterstrichen, kursiv,
* Draft, NLQ etc).
* Die Tabelle endet mit einem Null-Byte.
* - Zuletzt folgt die Übersetzungstabelle. Hier werden einzelne Zeichen
* in andere Zeichen (-folgen) umgesetzt.
* Auch diese Tabelle endet mit einem Null-Byte.
*
* Bei einer Initialisierung werden alle Aussschaltsequenzen der aktuellen
* Druckqualität sowie die horizontale und vertikale Initialisierung durch-
* laufen.
* Sind die Sequenzen der Druckercharakteristiken für die beiden
* Druckqualitäten gleich (unterscheiden sich also nur durch die Ein/Ausschalt-
* sequenz für NLQ/Draft), dann reicht es aus, nur bei einer Ausschaltsequenz
* die entsprechende Schriftqualität zu setzen (am besten bei einer selten
* benötigten Sequenz, z.B. Index unten).
* Mehr noch: Für die übrigen Druckercharakteristiken reicht es aus, wenn die
* Sequenz nur in der einen Schriftqualität gesetzt wird. Der Treiber setzt die
* Sequenz automatisch auch für die andere Schriftqualität ein.
*
*/
#ifndef _wp_print_h_
#define _wp_print_h_
#include "portab.h"
/*
* Exportierte Variablen
*/
EXTERN BOOLEAN wp_config_read;
#define PICA 0 /* 10 cpi */
#define ELITE 1 /* 12 cpi */
#define CONDENSED 2 /* 17 cpi */
#define EXPANDED 3 /* 6 cpi */
/*
* Werte für die Zeichenbreite (SetMode)
*/
BOOLEAN WPLoadCFGFile (UBYTE *name);
/*
* Eröffnung einer CFG-Datei. Der komplette Dateiname muß übergeben werden.
* Die Extension wird ggfs. automatisch korrigiert.
* Die Datei wird nach Eröffnung auf die Dateikennung in den ersten 8 Bytes
* überprüft ('GST-CFG:').
*/
VOID WPGetPrnName (UBYTE *Printername, WORD max_len);
/*
* Eingetragenen Druckernamen liefern. Falls keiner vorhanden ist, dann
* wird ein Leerstring ('') geliefert.
* max_len begrenzt die Namenslänge.
*/
BOOLEAN WPSendExit (VOID);
/*
* Es wird Eintrag 21H (Allgemeiner Druckerreset am Textende) gesendet.
*/
BOOLEAN WPSendInit (BOOLEAN use_nlq);
/*
* Drucker-Initialisierung senden. Es werden nacheinander folgende
* Einträge geschickt (in Klammern die NLQ-Einträge):
* - Eintrag 20H Horizontale Initialisierung
* - Eintrag 1FH Vertikale Initialisierung
* - Eintrag 7H ( 9H) Fettschrift aus.
* - Eintrag BH ( DH) Kursivschrift aus.
* - Eintrag FH (11H) Light aus.
* - Eintrag 13H (15H) Superscript aus.
* - Eintrag 17H (19H) Subscript aus.
* - Eintrag 1BH (1DH) Unterstreichung aus.
* - Falls vorhanden, werden noch die folgenden Sequenzn geschickt:
* - Eintrag 28H (29H) PICA (10 CPI).
* - Eintrag 30H Color-Einstellung: Black.
* - Eintrag 35H Proportional-Schrift wird ausgeschaltet.
*/
BOOLEAN WPSetMode (WORD Mode);
/*
* Zeichenbreite einstellen.
* Achtung: vorher 'SendInit' durchführen!
* Unterstützt werden:
* - PICA = 0; (* 10 cpi *)
* - ELITE = 1; (* 12 cpi *)
* - CONDENSED = 2; (* 17 cpi *)
* - EXPANDED = 3; (* 6 cpi *)
*/
BOOLEAN WPFormFeed (VOID);
/*
* Seitenvorschub ausgeben
*/
VOID WPSetTabSize (WORD tab);
/*
* Tabulatorweite einstellen
*/
BOOLEAN WPWriteLn (VOID);
/*
* Zeilenvorschub generieren
*/
BOOLEAN WPWrite (UBYTE ch);
BOOLEAN WPWriteString (UBYTE *Str);
BOOLEAN WPOpen (UBYTE *Name);
/*
* Eröffnung eines Druckerkanals
*/
VOID WPClose (VOID);
/*
* Schließung eines Druckerkanals
*/
#endif